//#include <stdio.h>
//#include <string.h>
//int main()
//{
//    FILE* fp = fopen("bite.txt", "w+");
//    if(fp == NULL)
//    {
//        perror("fopen");
//        return 1;
//    }
//    const char* str = "linux so easy!";
//    int n = fwrite(str, strlen(str), 1, fp);
//    if(n != 1)
//    {
//        perror("fwrite");
//    }
//    fseek(fp, 0, SEEK_SET);
//    while(1)
//    {
//
//        char buff[128];
//        int m = fread(buff, 1, sizeof(buff) - 1, fp);
//        if(m > 0)
//        {
//            buff[m] = '\0';
//            printf("%s", buff);
//        }
//        else 
//            break;
//    }
//    fclose(fp);
//    return 0;
//}


#include <string.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
//int main()
//{
//    pid_t id = fork();
//    if(id < 0)
//    {
//        perror("fork");
//        return 1;
//    }
//    else if(id == 0)
//    {
//        //child process
//        int cnt = 5;
//        while(cnt--)
//        {
//            printf("i am child process\n");
//            sleep(1);
//        }
//    }
//    else 
//    {
//        //parent process
//        int status;
//        int ret = waitpid(-1, &status, 0);
//        if(ret == -1)
//        {
//            perror("waitpid");
//            return 2;
//        }
//        else 
//        {
//            if(WIFEXITED(status))
//            {
//                printf("child exit code:%d\n", WEXITSTATUS(status));
//            }
//            else 
//            {
//                printf("child signal:%d\n", status&0x7F);
//            }
//        }
//    }
//    return 0;
//}

//int main(int argc, char* argv[])
//{
//    pid_t id = fork();
//    if(id == 0)
//    {
//        (void)argc;
//        execvp("ls", argv);
//    }
//    wait(NULL);
//    return 0;
//}

int main()
{
    int fd = open("bite.txt", O_CREAT | O_RDWR | O_TRUNC, 0666);
    if(fd < 0)
    {
        perror("open");
        return 1;
    }
    const char* str = "i like linux";
    write(fd, str, strlen(str));
    lseek(fd, 0, SEEK_SET);
    char buf[128];
    while(1)
    {
        int n = read(fd, buf, sizeof(buf) - 1);
        if(n > 0)
        {
            buf[n] = 0;
            printf("%s", buf);
        }
        else 
            break;
    }
    close(fd);
    return 0;
}







